#pragma once
#include <iostream>
#include <vector>
#include <list>

using namespace std;

namespace lcl
{
	template<class T, class Continar>
	class queue
	{
	public:
		void push(const T& x) { _con.push_back(x); }
		void pop() { _con.pop_front(); }
		size_t size() { _con.size(); }
		bool empty() { return _con.empty(); }
		T& back() { return _con.back(); }
		T& front() { return _con.front(); }
	private:
		Continar _con;
	};

	void test1()
	{
		//queue<int, vector<int>> q;
		queue<int, list<int>> q;

		q.push(1);
		q.push(2);

		while (!q.empty())
		{
			cout << q.front() << " ";
			q.pop();
		}
	}
}
